ITE Super IO入门篇 您所在的位置:网站首页 smart fan configuration ITE Super IO入门篇

ITE Super IO入门篇

2023-11-27 02:26| 来源: 网络整理| 查看: 265

接触BIOS以来算起来已经有四年了,想着将自己所学的知识记录起来,这样也方便他人学习。这是我的第一篇博客,从SIO开始吧!

简介

SIO应用在台式机比较多,主要用来做电源管理,如上电时序控制;外围接口扩充,如串口、并口;还有温度、电压监控、智能风扇等。

SIO是一个半可定制化的芯片,怎么说是半可定制化呢?比如上电时序,这一部分就是固化好的,而可定制化部分则是逻辑设备(Logic Device)部分。接入电源后SIO便根据固化的程序开始运作,等待power button触发。按下power button后SIO开始跑上电时序,CPU Reset后BIOS才开始跑,此时BIOS给SIO配置的Logic Device也才生效。

访问SIO

可以通过 index/data 的IO的方式访问SIO,端口分别是0x2E/0x2F。访问前需要先进入PnP mode,之后便可以通过往0x07这里写入逻辑设备号切换到相应的逻辑设备。怎么进入PnP mode呢?SPEC上有说明。 在这里插入图片描述 即只需在0x2E/0x4E这个端口分别写入0x87,0x01,0x55,0x55 就可以了,进入PNP mode后我们便可以读出逻辑设备中的256个寄存器值,读完后需要退出PnP mode。我们可以在带SIO的机器上用RW做下实验。 在这里插入图片描述

SIO中的逻辑设备

本文及以后的文章将会以IT8625这款型号进行讲解,其它型号也是大同小异的。

IT8625这款Super IO 共有8个逻辑设备可用,分别如下:

LDN 1 为串口1LDN 2 为串口2LDN 3 为并口LDN 4 为环境控制器,比如温度,电压监控,风扇控制等LDN 5 为PS/2键盘LDN 6 为PS/2鼠标LDN 7 为GPIO,如Power LED呼吸灯的控制LDN A 红外 在这里插入图片描述 每个逻辑设备都有对应的256个寄存器可配置,值得注意的是,256个寄存器中,有部分属于通用的全局寄存器,即每个逻辑设备这部分的寄存器都是共享的,如下表。 在这里插入图片描述 如0x20,0x21这两个寄存器,你在LDN1读出来的跟LDN2或LDN3等任何逻辑设备中读出来的都是一样的值,它都是属于Chip ID,此类寄存器称为Global Configuration Register。

每个逻辑设备中的寄存器除了全局部分,也有部分是有相同含义的,如0x30这个位置,大多数属于Activate功能,用来设置该设备是否启用,其它的具体可参照SPEC 8.2章节。

SIO中的IO Space

逻辑设备中的256个byte寄存器对于配置一些比较复杂的功能(如Smart Fan)远远是不够的,所以SIO还给我们提供了额外的寄存器去实现更加复杂的功能,那便是IO Space。要访问这个Space,就得知道它的Base Address,那在哪里呢?

IO Base Address一般是每个逻辑设备0x60,0x61,0x62,0x63这几个位置的值,当然,这段空间首先得经过南桥decode才可以,decode的这个问题我们暂且忽略。为了方便理解,我们举个例子。

就拿LDN 4 EC这个设备来说,我们要访问他的IO Space,首先得知道它的地址是多少,从IT8625的SPEC可以知道,地址就是0x60,0x61中的值。 在这里插入图片描述 这里的两个值是不能直接用的,按照说明,需要分别给他们加上05h和06h,再用index/data的IO方式访问就可以了。假如0x60的值是02h,0x61的值是90h(这两个值可以用RW看到),则:

index port address = 290h + 05h = 295hdata port address = 290h + 06h = 296h

用RW访问这个IO地址便可以看到结果了。

入门篇到这里就结束了,总体认识了一下SIO,后面的文章将逐一讲解每个逻辑设备的使用。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有